package cate.game.play.skill.active;

import cate.game.play.config.PlayCfgArgs;
import cate.game.play.proce.action.ctx.SkillActionCtx;
import cate.game.play.skill.effect.SkillEffect;

/**
 * 对敌方造成 xx 伤害 由所有人共同承担 单个伤害不超过施法者攻击力的xx倍
 */
public abstract class 均摊伤害AH extends ActiveHandler{

	private double 系数;

	private double 最大系数;

	//系数=79200&最大系数=4000
	@Override
	public void parse(String code) {
		PlayCfgArgs args = new PlayCfgArgs(code);
		系数 = args.getDouble("系数", 0d);
		最大系数 = args.getDouble("最大系数", 0d);
	}

	@Override
	public void parseExt(String code) {
		PlayCfgArgs args = new PlayCfgArgs(code);
		系数 += args.getDouble("系数", 0d);
		最大系数 += args.getDouble("最大系数", 0d);
	}

	@Override
	public void afterSelectTargets(SkillActionCtx action, SkillEffect effect) {
		double coeff = 系数 / action.getTargets().size();
		if (最大系数 > 0) {
			coeff = Math.min(coeff, 最大系数);
		}
		skill.param.addHpCfgByCoeff(coeff);
	}
}
